import axios, { AxiosResponse, AxiosRequestConfig } from 'axios';
import type { PromiseRes } from '../interface/sys';
// import { Message } from 'element-ui'
import router from '../router';
// import { getToken, removeInfo, removeToken } from '@/utils/cookie';
/**
 * http请求工具类
 *
 * 请求拦截器 负责将客户端标识token值存储并放置在头部提交给服务端
 *
 * 响应拦截器 负责全局处理业务请求的网络或者业务错误
 */
// 创建axios的实例
const service = axios.create({
  baseURL: 'https://www.fastmock.site/mock/57ff5676f3b6c145cb99b8eda436b69e/api',
  timeout: 10000, // 超时时间
});
// 请求拦截
service.interceptors.request.use(
  // (config: AxiosRequestConfig) => {
  //   // if (getToken()) {
  //   //   config.headers['X-Access-Token'] = getToken();
  //   // }
  //   // return config;
  // },
  // (err: any) => {
  //   Promise.reject(err);
  // },
);
// 响应拦截
service.interceptors.response.use(
  (response: AxiosResponse) => {
    let { errCode, errMsg } = response.data;
    switch (errCode) {
      case 200:
        return response.data;
      case 401:
        errMsg = '登录状态失效，请重新登录';
        router.push('/login');
        break;
      case 403:
        errMsg = '拒绝访问';
        break;
      case 408:
        errMsg = '请求超时';
        break;
      case 500:
        errMsg = '服务器内部错误';
        break;
      case 501:
        errMsg = '服务未实现';
        break;
      case 502:
        errMsg = '网关错误';
        break;
      case 503:
        errMsg = '服务不可用';
        break;
      case 504:
        errMsg = '网关超时';
        break;
      case 505:
        errMsg = 'HTTP版本不受支持';
        break;
    }
  },
  // (err: any) => {
  //   let errMcg = '';
  //   console.log(err);
  //   if (err && err.response.status) {
  //     switch (err.response.status) {
  //       case 505:
  //         errMcg = 'HTTP版本不受支持';
  //         break;
  //       default:
  //         errMcg = err.response.data.errMsg;
  //         break;
  //     }
  //   } else {
  //     errMcg = err;
  //   }
  //   console.log(errMcg);
  //   // Message.error(errMsg);
  //   return Promise.reject(errMcg);
  // },
);
export default service;